Objects typically execute in a runtime environment specific to the object's type. Thus, on a particular computing machine, objects from different environments are typically not co-executed to perform a single task. Concerns, such as (1) over duplication of interfaces and (2) issues with catastrophic failures in one runtime environment disrupting another runtime environment, drive developers to construct systems that are built of objects of a single type.